1. Field of the Invention
The present invention generally relates to a technology for correcting data error. The present invention specifically relates to a technology for decoding reproduced data.
2. Description of the Related Art
Recently, a low-density parity-check (LDPC) code is drawing attention as a next generation error correcting technology. For example, U.S. Pat. No. 6,895,547 discloses a method for LDPC encoding of data. The LDPC code indicates a linear code that is regulated such that the number of “1” included in a parity check matrix is reduced (becomes low density).
Regulating the LDPC code such that the number of “1” included in the parity check matrix is reduced enables an iterative decoding called belief propagation (BP) method using an algorithm such as sum-product algorithm and a min-sum algorithm. Further, increasing a code length of the LDPC code and including random nature enables to realize a significantly greater correcting ability than the correcting ability of a code used in a conventional error correction (Humming code or Reed-Solomon Code etc.).
Applying the LDPC code to a digital signal process of a storage device such as a magnetic disk device is examined. FIG. 23 is a block diagram for explaining the conventional technology, i.e., the digital signal process of an encoding/decoding unit of a magnetic disk device using the LDPC code.
The encoding/decoding unit includes an error correcting code (ECC) encoder and an LDPC encoder that carry out an encoding process, a partial response (PR) channel that carries out a recording/reproducing process, and a channel A posteriori probability (APP) decoder, an LDPC decoder, a determination output unit, and an ECC decoder that carry out a decoding process.
The encoding process of the encoding/decoding unit is explained first. The ECC encoder outputs, to the LDPC encoder, an encoded sequence b that is obtained by carrying out error correction encoding on a data bit sequence u. The LDPC encoder carries out LDPC encoding on the encoded sequence b received from the ECC encoder and outputs data c to the PR channel. The recording/reproducing process is explained next. The PR channel records the data c received from the LDPC encoder on the disk, and outputs a reproduced signal y from the disk to the channel APP decoder.
The decoding process is explained next. Based on the reproduced signals y received from the PR channel and prior data (no prior data for the first decoding process), the channel APP decoder decodes a posterior probability likelihood L(c) for the data c and outputs the posterior probability likelihood L(c) to the LDPC decoder. The LDPC decoder carries out belief propagation decoding on the posterior probability likelihood L(c) received from the channel APP decoder and outputs, to the channel APP decoder, external data Le(c) with updated likelihood (highest degree of reliability) as prior data. After repeating the aforementioned operations in the decoding process for a predetermined number of times, the LDPC decoder outputs the posterior probability likelihood L(b) to the determination output unit. The determination output unit determines a threshold value of the posterior probability likelihood L(b) received from the LDPC decoder and outputs a resultant decoded bit sequence b to the ECC decoder. The ECC decoder carries out symbol correction on the decoded bit sequence b received from the determination output unit and obtains a decoded data bit sequence u.
As described above, the channel APP decoder decodes posterior probability likelihood L(c) for the data c, and outputs the result to the LDPC decoder. The definition of the likelihood is explained with reference to FIG. 24. The likelihood can be obtained as:L(c)=log{P1(c=1|y)/P0(c=0|y)where P1 is a probability at which the data has a value 1, while P0 is a probability at which the data has a value 0. That is, the likelihood L(c) is, as shown in FIG. 24, represents the possibility of whether the data has a value 0 or 1. Specifically, the likelihood for data with a value 0 is represented by a negative maximum value (−∞), while the likelihood for data with a value 1 is represented by a positive maximum value (+∞). When it cannot be determined whether the data has a value 0 or 1, the likelihood will be zero (0).
A scheme has been proposed by Nikolaos Thomos, Nikolaos V. Boulgouris, and Michael G. Strintzis, “Product Code Optimization for Determinate State LDPC Decoding in Robust Image Transmission”, IEEE trans. Image Process., vol. 15, No. 8, pp. 2113-2119, August 2006, which employs a product coder consisting of LDPC codes and Reed-Solomon (RS) codes to deal with bit errors. The likelihood of determinate data, in which errors have been corrected with RS codes, is set to a large value, and used in LDPC decoding.
However, if the LDPC code is applied as the error correcting technology to the storage device such as the magnetic disk device, burst errors that originate due to a defect of data cannot be corrected. In other words, because the LDPC code randomizes the error and repeat propagates data to greatly enhance the error correcting ability, if a decoder that performs LDPC decoding is applied to the storage device such as the magnetic disk device, relatively large errors such as the burst errors are propagated (distributed). As a result, the errors reach a correction limit of an error correcting decoder (e.g., ECC decoder), and the burst errors cannot be corrected.
The aforementioned drawback is not limited to when the LDPC code is applied to the storage device such as the magnetic disk device. Application of the LDPC code to the digital signal process in storage goods such as an optical disk or in the field of communication such as a wireless local area network (LAN), wireless Internet, long distance optical communication etc. also results in a similar drawback.
Moreover, application of a turbo code, which includes functions that are similar to the functions of the LDPC code, to the storage device such as the magnetic disk device also results in the similar drawback.